package com.micro.ai.auth.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.io.Serializable;

/**
 * 租户更新请求
 * 
 * @author micro-ai
 * @since 0.0.1
 */
@Data
@Schema(description = "租户更新请求")
public class TenantUpdateRequest implements Serializable {

    private static final long serialVersionUID = 1L;

    @Size(min = 2, max = 100, message = "租户名称长度为2-100个字符")
    @Schema(description = "租户名称", example = "微AI科技有限公司")
    private String name;

    @Schema(description = "状态：active-活跃, inactive-未激活, suspended-已暂停", example = "active")
    private String status;

    @Schema(description = "套餐类型：free-免费, basic-基础, premium-高级, enterprise-企业", example = "basic")
    private String planType;

    @Email(message = "邮箱格式不正确")
    @Schema(description = "联系邮箱", example = "newcontact@micro-ai.com")
    private String contactEmail;

    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    @Schema(description = "联系电话", example = "13900139000")
    private String contactPhone;

    @Schema(description = "网站", example = "https://www.micro-ai.com")
    private String website;

    @Schema(description = "国家", example = "中国")
    private String country;

    @Schema(description = "省份", example = "北京市")
    private String province;

    @Schema(description = "城市", example = "北京市")
    private String city;

    @Schema(description = "地址", example = "朝阳区")
    private String address;

    @Schema(description = "邮编", example = "100000")
    private String postalCode;
}

